UltraEdit 32 v6.20b
|
|
|
|
Subject: Cracking |
![]() |
![]() |
|
This essay is for knowledge purposes only!! Software developers spend much time in making their programs. They live from the money we give them! Please buy good software!! |
|
I. Introduction | |
Welcome in this howto crack UltraEdit essay! Of all essays I wrote this is the most difficult |
|
II. About the protection | |
|
|
III. Cracking it | |
Run the program and note the message the nagscreen displays: "This is an unregistered copy...." ************Start-of-partial-code************ * Possible StringData Ref from Data Obj ->"Days to expire" | :0045A68B 689C064D00 push 004D069C :0045A690 57 push edi :0045A691 E8D1030300 call 0048AA67 :0045A696 A14C6D4D00 mov eax, dword ptr [004D6D4C] :0045A69B A3546D4D00 mov dword ptr [004D6D54], eax * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0045A724(C) | :0045A6A0 391D206D4D00 cmp dword ptr [004D6D20], ebx<-Registered? :0045A6A6 7519 jne 0045A6C1 <- Jump if it is * Possible Reference to String Resource ID=00005: "ULTRAEDT.MAC" | :0045A6A8 6A05 push 00000005 :0045A6AA 8D8E28010000 lea ecx, dword ptr [esi+00000128] :0045A6B0 E8557C0200 call 0048230A :0045A6B5 FFB644010000 push dword ptr [esi+00000144] * Reference To: USER32.UpdateWindow, Ord:0291h <- Display nag | :0045A6BB FF15ECB64A00 Call dword ptr [004AB6EC] Okay so first thing we have to do is changing the 7519 jne 0045A6C1 into: EB19 jmp 0045A6C1 Run the program again, and you'll see the nag has disappeared. Note that the time trial is still active, so let's crack that bitch :) You can use the program unregistered for 45 days. The hex value for 45 is "2D". So, there might be a check like "cmp register, 0000002D". Let's guess and take eax for the register, so search for "cmp eax, 0000002D"....and BINGO! ************Start-of-partial-code************ * Possible StringData Ref from Data Obj ->"Settings" | :0045A6FD 68F0054D00 push 004D05F0 :0045A702 E860030300 call 0048AA67 :0045A707 A14C6D4D00 mov eax, dword ptr [004D6D4C] :0045A70C 2B05546D4D00 sub eax, dword ptr [004D6D54] :0045A712 50 push eax :0045A713 E8323C0100 call 0046E34A <- Calculate usage :0045A718 83F82D cmp eax, 0000002D <-Compare days :0045A71B 59 pop ecx :0045A71C 7F0C jg 0045A72A <- jump if expired :0045A71E 399E44010000 cmp dword ptr [esi+00000144], ebx :0045A724 0F8576FFFFFF jne 0045A6A0 ************End-of-partial-code************ Yeah indeed, nop out that jump :) 7F0C jg 0045A72A becomes: 90 NOP 90 NOP Now the program is fully functional as the registered program should be, but there's still one thing left: the "unregistered" string in the aboutbox. This nasty thing costed me quite some time to find out: there are so many "This is an unregistered copy...." strings that it'd be impossible to find out what string is used for the about box. So I started thinking, and this is what I found out: the program probably checks the registered flag twice -> once for the nagscreen and once for the about box. So I started searching for a second "cmp dword ptr [004D6D20], ebx". I didn't find one, and I was getting quite frustrated, until I thought: "Maybe, it used another register to check that memory location!?". So again I started searching for all occurences with all different registers until....TADAAAAAAM if found: "cmp dword ptr [004D6D20], edi" :)) ************Start-of-partial-code************ :004061D7 C645FC01 mov [ebp-04], 01 :004061DB C70378D04A00 mov dword ptr [ebx], 004AD078 :004061E1 E8EACA0700 call 00482CD0 :004061E6 393D206D4D00 cmp dword ptr [004D6D20], edi <- Registered? :004061EC 7462 je 00406250 <- Jump if not registered * Possible Reference to String Resource ID=00009: " This copy of UltraEdit-32 is licensed to : " | :004061EE 6A09 push 00000009 :004061F0 8BCE mov ecx, esi :004061F2 E868CF0700 call 0048315F :004061F7 68FC544D00 push 004D54FC :004061FC 8BCE mov ecx, esi :004061FE E85CCD0700 call 00482F5F :00406203 BFA4CF4C00 mov edi, 004CCFA4 |
|
IV. In the end | |
Heh, my favorite part of tutorials :) You can freely use this essay on your page, as long as Greetings |
|
Essay written by The Blackbird © 1999-2000 This essay can be freely distributed/ published/ printed etc... as long as no modifications are made. |